/**
 * 
 */
package controller;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

/**
 * @author xavier
 * 
 */
public class AnalyserCorpus {
	public static void analyserCorpusController(String adresseFichier) {
		// Recuperation du nom du fichier
		String separatorPath = File.separator;
		String[] nomFichierSplitSlash = adresseFichier.split(Pattern
				.quote(separatorPath));
		String nomFichier = nomFichierSplitSlash[nomFichierSplitSlash.length - 1];

		nomFichierSplitSlash = nomFichier.split("\\.");
		nomFichier = nomFichierSplitSlash[0];

		InputStream ips;
		try {
			// Récupération de tout le fichier texte
			ips = new FileInputStream(adresseFichier);
			InputStreamReader ipsr = new InputStreamReader(ips, "UTF-8");
			BufferedReader br = new BufferedReader(ipsr);
			String ligne, fichierGlobal = null;
			while ((ligne = br.readLine()) != null) {
				fichierGlobal += ligne+System.getProperty("line.separator");
			}
			br.close();
			String[] fichierDecoupe = fichierGlobal.split("===============");
			if (StringUtils.isNotBlank(fichierGlobal)) {
				new File("fichiersOriginaux/" + nomFichier).mkdir();
				for (int index = 0; index < fichierDecoupe.length; index++) {
					File fichier = new File("fichiersOriginaux/" + nomFichier
							+ "/" + nomFichier + index + ".txt");
					FileWriter writer = null;
					String texte = fichierDecoupe[index];
					try {
						writer = new FileWriter(fichier);
						writer.write(texte, 0, texte.length());
					} catch (IOException ex) {
						ex.printStackTrace();
					} finally {
						if (writer != null) {
							writer.close();
						}
					}
				}
			}
		} catch (FileNotFoundException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public static void main(String[] args) {
		analyserCorpusController("");
	}
}
